Національний технічний університет України
«Київський політехнічний інститут імені Ігоря Сікорського»
Алгоритмізація та програмування 2: Процедурне програмування
ЗВІТ
до лабораторної роботи № 1
«Файли: створення, запис, читання»
Варіант 16
Дата «23» лютого 2022
ЗАВДАННЯ:
1. Ознайомитись з основними функціями для роботи з файлами.2. У якості індивідуального завдання необхідно написати програмний код, що реалізує створення двовимірного квадратного масиву розмірністю SIZE; виконання початкової ініціалізації всіх елементів масиву; запис у файл початкових даних і значень всіх елементів двовимірного квадратного масиву; створює копію цього файлу з новим розширенням *.bak.3. Роздрукувати (вивести на екран) протокол виконання програмного коду.4. Вихідні дані вибрати за індивідуальними варіантами (див. Додаток B-1).
Варіант завданнь:
Лабораторна робота №7:
За варінатом 16 – з таблиці з рисунка 1 варіант 4.
/
Рисунок 1.
Теоритичні відомості:
Покажчик на файл (змінна-покажчик типу FILE *) – це покажчик на інформацію, що визначає різні параметри файлу, включаючи його ім'я, стан та поточну позицію. Вказівник на файл ідентифікує конкретний дисковий файл та використовується потоком для виконання операцій введення/виводу. Для читання або запису файлу програма використовує вказівник на файл. Файлова змінна (наприклад, файл) створюється наступним оператором:
FILE *file;
Операція, за допомогою якої програма вперше запитує доступ до файлу, називається відкриттям файлу. Звільнення файлу в кінці роботи зазвичай називається закриттям файлу.
Функція fopen() відкриває потік. Цією функцією керують три основні параметри: ім'я файлу, який слід відкрити, вид застосування файлу та вказівник на файл, повертається функцією.
Синтаксис: FILE * fopen (char * filename, char * mode);
Опис: функція fopen() відкриває файл, іменований параметром filename і пов'язує його з відповідним потоком stream. Функція fopen() повертає як результат адресний покажчик, який ідентифікуватиме потік stream у наступних операціях.
Файл може бути відкритий у таких режимах (mode):
r відкриття файлу лише для читання;
w створення файлу для запису;
а приєднання, відкриття для запису в кінець файлу або створення запису, якщо файл не існує;
r+ відкриття існуючого файлу для оновлення (читання та запису);
w+ створення нового файлу для зміни;
a+ відкриття для приєднання; відкриття (або створення, якщо файл не існує) для оновлення на кінець файлу.
Якщо файл відкривається або створюється в текстовому режимі, можна додати символ t до значення параметра mode (rt, w+t тощо); аналогічно, для специфікації бінарного режиму можна до значення параметра mode додати символ b (wb, a+b тощо).
Важливо: Функція exit() використовується для припинення роботи програми з появою помилки. Якщо exit() звернулися з функції, викликаної головною програмою, то припиняє роботу вся програма, а не лише ця функція. Особливістю exit() те, що вона закриває будь-які файли, відкриті функцією fopen(). Це робить вихід із програми коректним. Аргументом exit() є номер коду помилки, він може передаватися іншій програмі, якщо вихідна припинила роботу. Існує угода, що 0 вказує на нормальне завершення, а будь-яке інше значення сигналізує про помилки.
Блок копіювання даних:
while(feof(infile) == 0)
{
ch = getc(infile);
if(feof(infile) == 0) putc(ch, outfile);
}
Блок-схеми
Повна програма:
/
Рисунок 2.
Вивід програми:
/
Рисунок 3.
/
Рисунок 4.
/
Рисунок 5.
/
Рисунок 6.
Код програми:
Посилання на Repl.it:
https://replit.com/join/obofrnarer-tr-15khavkin
#include<stdio.h>
#include <stdlib.h>
//Зчитування вхідних данних з командної строки
int main(int argc, char *argv[]){
if(argc != 50) {
printf("За варіантом потрібно 49 елементів, помилка, зупинка програми\n");
exit(1);
}
printf("Зчитування с командного рядка було успішним, продовження роботи програми");
//Створення, ініціалізація та присвоення массива його значень з командної строки
float arr[7][7];
int count=1;
printf("\nІніціалі...